"""
@author: 李凌飞
@date: 2025-04-07
@description: 批量修改json文件中的name字段
@question:现在有了映射文件，需要对文件夹中缺失name字段的json文件进行批量修改
"""
import json
import os

# 读取name映射文件
with open(r'C:\Users\lenovo\Desktop\app\models\output\name_extraction_results_20250407_102715.json', 'r', encoding='utf-8') as f:
    name_mapping = json.load(f)

# 源文件夹路径
source_dir = r'C:\Users\lenovo\Desktop\all_external_json_3800+'

# 遍历源文件夹中的所有json文件
for filename in os.listdir(source_dir):
    if filename.endswith('.json'):
        # 检查文件名是否在映射中
        if filename in name_mapping:
            file_path = os.path.join(source_dir, filename)
            
            try:
                # 读取json文件
                with open(file_path, 'r', encoding='utf-8') as f:
                    data = json.load(f)
                
                # 如果base_info中的name字段为空，则更新name字段
                if not data.get('base_info', {}).get('name'):
                    if not data.get('base_info'):
                        data['base_info'] = {}
                    data['base_info']['name'] = name_mapping[filename]
                    
                    # 写回文件
                    with open(file_path, 'w', encoding='utf-8') as f:
                        json.dump(data, f, ensure_ascii=False, indent=4)
                    print(f'已更新文件 {filename} 的name字段为: {name_mapping[filename]}')
                        
            except Exception as e:
                print(f'处理文件 {filename} 时出错: {str(e)}')

print('处理完成!')
